package com.jhgsys.internal.hazard.service;

import com.jhgsys.internal.hazard.dto.HazardExamineConfigDto;
import com.jhgsys.internal.hazard.entity.HazardExamineConfig;
import com.jhgsys.internal.common.entity.QueryRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 *  Service接口
 *
 * @author Lujiachen
 * @date 2024-08-13 08:53:55
 */
public interface IHazardExamineConfigService extends IService<HazardExamineConfig> {
    /**
     * 查询（分页）
     * @author Lujiachen
     * @date 2024-08-13 08:53:55
     * @param request QueryRequest
     * @param hazardExamineConfig hazardExamineConfig
     * @return IPage<HazardExamineConfig>
     */
    IPage<HazardExamineConfig> findHazardExamineConfigPage(QueryRequest request, HazardExamineConfig hazardExamineConfig);

    /**
     * 查询（所有）
     * @author Lujiachen
     * @date 2024-08-13 08:53:55
     * @param hazardExamineConfig hazardExamineConfig
     * @return List<HazardExamineConfig>
     */
    List<HazardExamineConfig> findHazardExamineConfigList(HazardExamineConfig hazardExamineConfig);

    /**
    * 根据ID查询
    * @author Lujiachen
    * @date 2024-08-13 08:53:55
    * @param id
    * @return HazardExamineConfig
    */
    HazardExamineConfig findHazardExamineConfigById(String id);

    /**
     * 新增
     * @author Lujiachen
     * @date 2024-08-13 08:53:55
     * @param hazardExamineConfig hazardExamineConfig
     */
    void createHazardExamineConfig(HazardExamineConfig hazardExamineConfig);

    /**
     * 修改
     * @author Lujiachen
     * @date 2024-08-13 08:53:55
     * @param hazardExamineConfig hazardExamineConfig
     */
    void updateHazardExamineConfig(HazardExamineConfig hazardExamineConfig);

    /**
     * 逻辑删除
     * @author Lujiachen
     * @date 2024-08-13 08:53:55
     * @param hazardExamineConfig hazardExamineConfig
     * @param hazardExamineConfigIds hazardExamineConfigIds
     */
    void deleteHazardExamineConfig(HazardExamineConfig hazardExamineConfig,String hazardExamineConfigIds);

    /**
    * 物理删除
    * @author Lujiachen
    * @date 2024-08-13 08:53:55
    * @param hazardExamineConfigIds hazardExamineConfigIds
    */
    void physicallyDeleteHazardExamineConfig(String hazardExamineConfigIds);

    List<HazardExamineConfig> findHazardExamineConfigListByTenantId(String currentTenantId);

    void createHazardExamineConfigList(List<HazardExamineConfigDto> hazardExamineConfigDtoList);

    void updateHazardExamineConfigList(List<HazardExamineConfigDto> hazardExamineConfigDtoList);

}
